package edu.uoc.tdp.pac3.common;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.*;

import edu.uoc.tdp.pac3.common.tools.*;
import edu.uoc.tdp.pac3.beans.*;

/**
 * Interface GestorIncidenciesInterface 
 * 
 * @author Eloi Rebollo i Francesc Cabrera
 * @version 1.0
 */
public interface GestorIncidenciesInterface extends Remote {

    /**
     * @return Una llista de tots les espais actius de l'empresa
     * @throws RemoteException
     */
    public Vector<ComboItem> vctEspais() throws RemoteException;

    /**
     * @return Una llista de tots els usuaris actius de l'empresa
     * @throws RemoteException
     */
    public Vector<ComboItem> vctUsers() throws RemoteException;

    /**
     * @return Una llista de totes les incidencies de l'empresa
     * @throws RemoteException
     */
    public Vector<ComboItem> vctIncidencia() throws RemoteException;

    /**
     * @return Una llista de totes les incidencies de l'empresa segons el parametre
     * @param solved
     * @throws RemoteException
     */    
    public Vector<ComboItem> vctIncidencia(Boolean solved) throws RemoteException;

    /**
     * Guardar la incidencia
     * @param IdEspai, IdUser, Data, Descripcio
     * @return id del nou registre
     * @throws RemoteException
     */
    public Integer saveRequest(Integer idSpace, Integer idUser, Date fecha,
            String description) throws RemoteException;

    /**
     * Actualitza la incidencia
     * @param IdIncidencia, Solved
     * @return id del registre modificat
     * @throws RemoteException
     */    
    public Integer updateRequest(Integer idRequest, Boolean solved) throws RemoteException;

    /**
     * Guardar una actuació
     * @param IdRequest, IdUser, Data, Descripcio
     * @return id del nou registre
     * @throws RemoteException
     */    
    public Integer saveNote(Integer idRequest, Integer idUser, Date fecha,
            String description) throws RemoteException;
    
    /**
     * @return Una llista de totes les actuacions d' una
     * @param IDRequest
     * @throws RemoteException
     */     
    public List<Actuacio> lstNoteList(Integer idRequest)throws RemoteException;
}
